package com.matpala.practico1.b;

import java.util.ArrayList;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYBarRenderer;
import org.jfree.data.RangeType;
import org.jfree.data.statistics.HistogramBin;
import org.jfree.data.statistics.HistogramDataset;
import org.jfree.data.statistics.HistogramType;
import org.jfree.data.xy.IntervalXYDataset;

public class Grafico {
	private static JFreeChart createChart(IntervalXYDataset intervalxydataset)
    {
        JFreeChart jfreechart = ChartFactory.createHistogram("Histograma", null, null,
        		intervalxydataset, PlotOrientation.VERTICAL, true, true, false);
        XYPlot xyplot = (XYPlot)jfreechart.getPlot();
        xyplot.setForegroundAlpha(0.75F);
        XYBarRenderer xybarrenderer = (XYBarRenderer)xyplot.getRenderer();
        return jfreechart;
    }

	public static void main(String[] args) {
		
		int limiteInferior = 10;
		int limiteSuperior = 20;
		int cantidadNumeros = 30;
		
		Generador generador = new Generador(limiteInferior,limiteSuperior);
		
		int cuantos = limiteSuperior - limiteInferior;
		int[] frecuencia = new int[cuantos+1];
		int resultado = 0;
		ArrayList<Integer> listado = new ArrayList<Integer>();
		double[] listadoDoble = new double[cantidadNumeros];
		for (int i = 0; i < cantidadNumeros; i++) {
			resultado = generador.generar();
			listado.add(resultado);
			listadoDoble[i] = (double) resultado;
			frecuencia[resultado-limiteInferior]++;
		}
		System.out.println(listado.toString());
		for (int i = 0; i < frecuencia.length; i++) {
			System.out.println("El numero: " + (i + limiteInferior)  + " Salio: " + frecuencia[i] + " veces");
		}
		HistogramDataset dataset = new HistogramDataset();
		dataset.setType(HistogramType.FREQUENCY);
		dataset.addSeries("Histograma", listadoDoble, cantidadNumeros);
//		JFreeChart chart = ChartFactory.createHistogram("Frecuencia", "Valores",
//				"Frecuencia", dataset, PlotOrientation.VERTICAL,true,true,true);
		JFreeChart chart = createChart(dataset);
		NumberAxis axis =  (NumberAxis) chart.getXYPlot().getDomainAxis();
		//axis.setTickUnit(new NumberTickUnit(2.0));
		ChartFrame frame = new ChartFrame("Ejemplo", chart);
		frame.pack();
		frame.setVisible(true);
		
	}

}
